[レポート] SORACOM if-up 2017 B1トラック「エッジヘビーコンピューティングと機械学習」
春日華麗の候, 春風に誘われて、外出の機会も多くなりました。お元気でしょうか、せーのです。
さて今日は春風に誘われてSORACOMのカンファレンス「if-up 2017」に行ったレポートをお送りします。
このカンファレンスでは来場者全員にお楽しみ袋が配られました!
Cortex-M4搭載、ということでmbedの手始めとしては遊びがいがあるのではないでしょうか。またARM社がスポンサー、ということでどんな形式のプラグにもハマる、というおもしろプラグアダプタも入ってました。
ということでこんなおもちゃが大好きなIoTエンジニアが集まるイベント、if-up 2017よりB1トラック「エッジヘビーコンピューティングと機械学習」の様子をリポートします。スピーカーは株式会社Preferred Networks エンジニア 田中 大輔 氏、モデレータはSORACOMの今井 雄太氏です。
レポート
「昨今のIoTのユースケースは機械学習とは切っても切り離せない」とまずSORACOM今井氏はセッションの最初に機械学習とIoTとの関わりについて話しました。代表的な例として
- 自動運転
- カメラによる人物識別
- 音声インターフェース
- 車、工場などのデバイス、設備の予兆保全
- 機械の振動、音、湿度、温度等を集めて「壊れる前に」予兆する
- 自動車保険の適用(Usage ased insurance)
- スマート家電、スマートマンション、スマートビル、スマート◯◯
等が挙げられます。
機械学習とIoTとの関わりとは詰まるところ「どこまでをクラウドで行うのか」という処理の振り分けに集約されます。
機械学習を行うには膨大なデータが必要になります。集めた膨大なデータを「学習器」と呼ばれるものに投入して「モデル」を計算します。ここは機械学習の中でも重要なフェーズとなり、この過程には大量のデータと大量の計算リソースが必要となります。こうして出来上がった「モデル」を使って「推論」を行います。これを「推論」フェーズといいます。
今まではクラウドの便利さからこういった学習から推論まで全てをクラウドで行ってきましたが、本当にそれで良いのか、というのが今回の論点となります。
エッジとクラウドの特徴を見極める
次に今井氏はエッジとクラウドの特徴について話しています。
エッジ(デバイス側)は事象/現場に近いのでレイテンシは有利ですが一方計算リソースは限られています。一方クラウドは計算リソースは安価、豊富にあるのですが事象/現場から遠いという制約があります。そこでいい感じに役割分担をしようとするとネットワークを使ってデータをやり取りする必要があるのですが帯域、距離、セキュリティ、料金という制約が出てきます。どこか一箇所で行おうとするのではなく適材適所で上手く組み合わせ、正しい役割分担で機械学習を行うことが必要な考えとなります。この「セキュリティ」「通信の管理」「コスト」という部分をクリアにするためにソラコムのアーキテクチャが重要な役割を果たします。
ここでPFN田中氏が登場、「SORACOMさんはインターネット、通信のデバイス領域からモノを賢くつなぎ、我々はつないだモノをより賢くしていく、ということで親和性が高いです」と語ります。
ルールに基づく判断は限界がある
今日は「人工知能ってすごい」という話をする気はなくて、エンジニアから見て機械学習とどう付き合えばよいか、という話をします。
元々機械学習の前に「ルールベース」という考え方がありまして、例えば「ある単語がどのカテゴリに属するか」という処理をする場合、ルールベースだと「ゴルフ : スポーツ」というようなルールを予め書いて判断することになります。ただこれが「ゴルフ + フォルクスワーゲン」の場合、スポーツではなく「車」というカテゴリに入れなくてはいけない等、ルールが段々破綻していきます。機械学習はとにかくデータをまず用意し、規則を自動で獲得するというのが大きな特徴です。ただすべての面において機械学習の方がルールベースに勝っているわけではないので要件によって判断した方が良いかと思います。
機械学習はアルゴリズムと同じく「特徴抽出」が大事な部分になります。この特徴ベクトルをどのように作成するか、というのが機械学習屋さんの大事な作業になるわけですが、深層学習(Deep Learning)の場合、その特徴抽出の一部をも機械にやらせることで数年で大きな進化を遂げました。ただこれも全ての特徴を機械が抽出できるわけではありません。そして深層学習で大事なことは「学習フェーズ」と「推論フェーズ」に分けることが出来、「学習フェーズ」はフォワード、バックワードの処理を繰り返すため処理が重くなり、「推論フェーズ」は処理が軽い、ということです。
機械が生み出すデータは量が凄まじく多いわりに、学習に使えるデータはほんの少ししか無い場合も多いです。エッジヘビーコンピューティングとはIoTを利用した膨大なデータに対して深層学習を行うことにより深い分析が出来るのではないか、というアプローチです。
積極的なIoTと消極的なIoT
将来的には分散協調型のエッジコンピューティングに行くだろうと考えています。これを我々は「積極的なIoT」と呼んでいます。しかし現実的にはまだまだそこには研究開発の要素が沢山あるので「消極的なIoT」の段階です。IoTで取得できるデータは膨大なのに消極的なIoTでは矛盾します。そこで「学習」と「推論」が出てきます。「学習」はクラウドを使って頑張る。そして出来上がった学習モデルをエッジに持ってきてエッジ側で「推論」を行うわけです。ただ「推論」を行うだけだと管理運用ができません。モニタリングがとても重要です。そこでSORACOMさんの出番となります。 IoTは今ではフルスタックです。IoTの文脈における「フルスタック」とは「組み込み」「ネットワーク」「コンテナ、VM」「クラウド」の知識が必要となります。これらの知識を1人で学ぶのは限界があるため、PFNでは組織全体でフルスタックな知識を得ようとしています。
デモ
最後に田中氏は人を検出して年齢、性別を判別する、というデモンストレーションを披露しました。推論部分はエッジにて行い「そこに何人いたか」というモニタリングはSORACOM Harvestを使って行っています。
「エッジデバイスへの機械学習の適用は工夫次第で現実のものとなっています。コツとしては"学習モデルの管理"と"モニタリング"です。SORACOMとPFNを使ってそれを実現します」と最後にまとめられました。
まとめ
個人的にはとても参考になるセッションでした。エッジコンピューティングやフォグコンピューティングと呼ばれる分野はIoTがバズワードになりだした頃から研究開発が進められており、インターネットを通じたクラウドへの接続がSPOFとなってしまうIoTの弱点を上手くカバーしつつどのようにしてデータロストを防ぎ、効率的かつレイテンシの高いシステム構築を行うか、というアーキテクチャはエンジニアの腕の見せ所でした。昨今のバズワードである機械学習にも同じ課題と解決法が研究されていると知り、機械学習に親近感が湧いてきました。